FLIR Atlas Android SDK Quick Start Guide

Overview

FLIR Atlas Android SDK's purpose is to provide a simple and reliable API for interacting with FLIR files, cameras and measurement tools.

The SDK is partitioned into "parts" corresponding to specific functionally e.g.:

Supported platforms

Functionality currently supported by FLIR Atlas Android SDK:

device discover connect import images live stream live measurements remote control
FLIR ONE V V N/A V V** V***
WiFi Camera V V V V* V** V****
Meterlink V V V N/A V** N/A
*visual streaming is supported, thermal streaming is supported on selected cameras only
**for cameras (FLIR ONE or network) live measurement means temperature tools (spot, rectangle, etc.), for Meterlinks it depends on the device type, i.e. voltage levels
***allows to control FLIR ONE shutter, get battery status, etc.
****set of remote features depends on the camera model

FLIR files - the SDK can read / write data from / to FLIR images stored as files, a few examples of the information that can be accessed from a file:

Emulators

There a are two emulators that can be used without FLIR hardware to scan and get live images. See code in sample applications (in particular "AndroidSampleKotlin") and the usage of CommunicationInterface.EMULATOR.

FLIR ONE emulator

The FLIR ONE emulator can be used during development for FLIR ONE applications without the need of a real FLIR ONE dongle, the emulator provides pre-recorded sequence of images. The name presented by the emulator is "EMULATED FLIR ONE".

Generic emulator

The generic emulator provides a more generic form of streaming data. The name presented by the emulator is "C++ EmulatorId: YYY" where YYY is a number.

Getting started

Add the provided release packages into your project (i.e. AAR on Android). See specific instructions in the documentation provided for each platform.

Flow for opening and reading an image from a FLIR file

  1. Initialize the SDK, example in Android
    ThermalSdkAndroid.init(android.content.Context context);
  2. Creating a ThermalImageFile object
    ThermalImageFile image = (ThermalImageFile) ImageFactory.createImage("<external_storage>/FLIR/images/ir.jpg");
  3. Get a Android Bitmap from the ThermalImageFile - it represents colorized pixels according to selected FusionMode and Palette
    android.graphics.Bitmap bitmap = BitmapAndroid.createBitmap(image.getImage()).getBitMap();

Flow for importing images from a FLIR network camera

  1. Initialize the SDK
    ThermalSdkAndroid.init(android.content.Context context);
  2. Activate discovery over Network (WiFi)
    DiscoveryFactory.getInstance().scan(aDiscoveryEventListener, CommunicationInterface.NETWORK);
  3. Found FLIR network cameras are described by "Identity". In order to connect to them you need to use "Camera" class API
    camera.connect(identity, aConnectionStatusListener);
    Note that Camera.connect() method is blocking and it is mandatory to call this function from a background thread.
  4. When a camera connection has been established
    4.1 use the camera.getImporter(); to get a "Importer" to import images from a network camera
    4.2 use importer.listImages(...); to list files on the network camera
    4.3 use importer.importFiles(...); to import a list of files from the network camera

Flow for getting a live stream from a FLIR ONE camera or an integrated thermal camera built in to the phone.

  1. Initialize the SDK
    ThermalSdkAndroid.init(android.content.Context context);
  2. Activate discovery over USB
    DiscoveryManager.getInstance().scan(aDiscoveryEventListener, CommunicationInterface.USB);
  3. Activate discovery of integrated devices
    DiscoveryManager.getInstance().scan(aDiscoveryEventListener, CommunicationInterface.INTEGRATED);
  4. Similar to network cameras, the found FLIR USB cameras are described by "Identity". In order to connect to them you need to use "Camera" class API
    camera.connect(identity, aConnectionStatusListener);
    Note that Camera.connect() method is blocking and it is mandatory to call this function from a background thread.
  5. When a camera connection has been established
    4.1 use the Camera.getStreams(), Stream.start()() and ThermalStreamer to get a stream of images, these images can then be shown as the live stream on the UI

For more information please see the included Java / Android / iOS documentation and sample applications in each release package.